Known building automation systems are typically designed to monitor, report and control the environmental and/or safety conditions within a structure. For example, in order to maintain the temperature at a desired set point, the building automation system may drive one or more environmental control devices to a steady state condition centered on the set point. In order to perform this task, one or more building automation devices must be programmed and/or configured with firmware that provides the instructions and parameters necessary to achieve the desired functionality.
Building automation systems often employ a large number of these building automation devices in order to perform the required monitoring and control functions for a structure and/or a group of structures. Each of these individual building automation devices or class of building automation devices, in turn, requires firmware and configuration to ensure operation and to provide the desired functionality. The firmware utilized by these building automation devices is configured as a single interconnected block of instruction making it difficult to modify any given portion. For example, in order to add or change functionality of one of the building automation devices, the entire firmware package must typically be modified and uploaded. The large number of devices operating within the building automation system further exacerbates this limitation. Thus, in order to implement any desired firmware customization numerous variants of firmware that must be tracked and maintained by the user to address the differences in device vendors or capabilities.